import axios from 'axios'
import type { CreateCodeConfigParams } from '../types'
import type { AxiosResponse } from 'axios'

/**
 * @description 获取api相关配置
 * @returns 返回配置
 */
export const getCodeConfigApi = (): Promise<
  AxiosResponse<{
    codeConfig: any
    apis: any
  }>
> => {
  return axios.get('/csdev-proxy/code-config')
}

/**
 * @description 检测模块是否存在
 * @param modulePath 模块路径
 * @returns 返回数据
 */
export const checkModuleApi = (
  modulePath: string
): Promise<
  AxiosResponse<{
    exists: boolean
  }>
> => {
  return axios.get(`/csdev-proxy/check-module?modulePath=${modulePath}`)
}

/**
 * @description 创建预览组件
 * @param params 配置参数
 * @returns 返回数据
 */
export const createPreviewComApi = (
  params: CreateCodeConfigParams
): Promise<AxiosResponse<void>> => {
  return axios({
    url: '/csdev-proxy/create-preview-com',
    method: 'post',
    data: params
  })
}

/**
 * @description 创建模块
 * @param params 配置参数
 * @returns 返回数据
 */
export const createModuleApi = (
  params: CreateCodeConfigParams
): Promise<AxiosResponse<void>> => {
  return axios({
    url: '/csdev-proxy/create-module',
    method: 'post',
    data: params
  })
}
